const { app, BrowserWindow } = require('electron');
const path = require('path');

// 尝试获取单实例锁
const gotTheLock = app.requestSingleInstanceLock();

if (!gotTheLock) {
    // 如果没有获取到锁，说明已经有一个实例在运行，直接退出当前实例
    app.quit();
} else {
    function createWindow() {
        const win = new BrowserWindow({
            width: 1100,
            height: 600,
            // 设置窗口标题
            title: '溢彩画',
            webPreferences: {
                nodeIntegration: true,
                contextIsolation: false,
                enableRemoteModule: true
            },
            icon: path.join(__dirname, 'icon.jpg'),
            // 自动隐藏菜单栏
            autoHideMenuBar: true,
            // 初始时不显示菜单栏
            menuBarVisible: false
        });

        win.loadFile('index.html');
    }

    app.whenReady().then(() => {
        createWindow();

        app.on('activate', function () {
            if (BrowserWindow.getAllWindows().length === 0) createWindow();
        });
    });

    app.on('window-all-closed', function () {
        if (process.platform !== 'darwin') app.quit();
    });

    // 当第二个实例启动时，会触发这个事件
    app.on('second-instance', (event, commandLine, workingDirectory) => {
        // 检查是否有打开的窗口
        const windows = BrowserWindow.getAllWindows();
        if (windows.length > 0) {
            const mainWindow = windows[0];
            if (mainWindow.isMinimized()) mainWindow.restore();
            mainWindow.focus();
        }
    });
}